package algorithm.sparseArray;

import java.lang.reflect.InvocationTargetException;
import java.util.*;

public class Main {
    public static void main(String[] args) {
//        //数组转稀疏数组 0表示没用的数据
//        int sum = 0;
//        int[][] array = new int[6][7];
//        array[0][1] = 1;
//        array[1][3] = 3;
//        //输出数组结果
//        for (int[] a : array) {
//            for (int t : a) {
//                System.out.printf("%d\t", t);
//            }
//            System.out.println();
//        }
//
//        /**
//         * 将普通数组转换为稀疏数组
//         */
//        //找有多少个有用的元素
//        for (int i = 0; i < array.length; i++) {
//            for (int j = 0; j < array[0].length; j++) {
//                if (array[i][j] != 0)
//                    sum++;
//            }
//        }
//
//        //创建稀疏数组
//        int[][] sparseArr = new int[sum + 1][3];
//        //从第二行开始赋值
//        int count = 1;
//        //稀疏数组第一行的值
//        sparseArr[0][0] = array.length;
//        sparseArr[0][1] = array[0].length;
//        sparseArr[0][2] = sum;
//        //为稀疏数组第二行后面进行赋值
//        for (int i = 0; i < array.length; i++) {
//            for (int j = 0; j < array[0].length; j++) {
//                if (array[i][j] != 0) {
//                    sparseArr[count][0] = i;
//                    sparseArr[count][1] = j;
//                    sparseArr[count][2] = array[i][j];
//                    count++;
//                }
//            }
//        }
//
//        //输出稀疏数组
//        System.out.println("稀疏数组：~~~~~~~~~~");
//        for (int[] a : sparseArr) {
//            for (int t : a) {
//                System.out.printf("%d\t", t);
//            }
//            System.out.println();
//        }
//
//
//        /**
//         * 将稀疏数组转换为普通数组
//         *
//         */
//        int [][]arr = new int[sparseArr[0][0]][sparseArr[0][1]];
//        for (int i = 1; i <= sparseArr[0][2]; i++) {
//            arr[sparseArr[i][0]][sparseArr[i][1]] = sparseArr[i][2];
//        }
//
//        //打印还原后的数组
//        System.out.println("还原后的数组");
//        for (int[] a : arr) {
//            for (int t : a) {
//                System.out.printf("%d\t", t);
//            }
//            System.out.println();
//        }

        LinkedList linkedList = new LinkedList();


    }
}
